package com.wpf.system.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

/**
 * 场馆表
 * @TableName field
 */
@TableName(value ="field")
@Data
public class Field implements Serializable {
    /**
     * 场馆主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 父级主键
     */
    private Long pid;

    /**
     * 场馆编号
     */
    private String fieldNo;

    /**
     * 场馆名称
     */
    private String name;

    /**
     * 场馆位置
     */
    private String locate;

    /**
     * 场馆介绍
     */
    private String remark;

    /**
     * 场馆费用/30min
     */
    private BigDecimal cost;

    /**
     * 场馆剩余席位
     */
    private Integer seat;

    /**
     * 场馆开放星期
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String week;

    /**
     * 开放时间段
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String times;

    /**
     * 场馆负责人
     */
    private Long uid;

    /**
     * 类别主键
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long cid;

    /**
     * 显示顺序
     */
    private Integer sort;

    /**
     * 场馆状态（1：正常；0：停用；2：维护中）
     */
    private Integer status;

    /**
     * 场馆信息修改时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private Date updateTime;

    /**
     * 场馆创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 逻辑删除标识（1：已删除；0：未删除）
     */
    @TableLogic
    private Integer isDelete;

    /**
     * 版本号
     */
    @Version
    private Long version;

    @JsonInclude(JsonInclude.Include.NON_NULL)
    @TableField(exist = false)
    private List<Field> children = new ArrayList<>();

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}